<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>XMP Toolkit SDK: AdobeXMPCore::INode_v1 Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xmp_tagline_small.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">XMP Toolkit SDK
   &#160;<span id="projectnumber">6.0.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classAdobeXMPCore_1_1INode__v1.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classAdobeXMPCore_1_1INode__v1-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">AdobeXMPCore::INode_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM.  
 <a href="classAdobeXMPCore_1_1INode__v1.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="INode_8h_source.html">INode.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for AdobeXMPCore::INode_v1:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classAdobeXMPCore_1_1INode__v1.png" usemap="#AdobeXMPCore::INode_5Fv1_map" alt=""/>
  <map id="AdobeXMPCore::INode_5Fv1_map" name="AdobeXMPCore::INode_5Fv1_map">
<area href="classAdobeXMPCommon_1_1ISharedObject.html" title="Interface that serves as the base interface of all the externally exposed interfaces." alt="AdobeXMPCommon::ISharedObject" shape="rect" coords="0,0,223,24"/>
<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="233,0,456,24"/>
<area href="classAdobeXMPCommon_1_1IThreadSafe.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IThreadSafe" shape="rect" coords="466,0,689,24"/>
<area href="classAdobeXMPCore_1_1ICompositeNode__v1.html" title="Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP ..." alt="AdobeXMPCore::ICompositeNode_v1" shape="rect" coords="116,112,339,136"/>
<area href="classAdobeXMPCore_1_1ISimpleNode__v1.html" title="Version1 of the interface that represents a Simple Property Node of XMP DOM." alt="AdobeXMPCore::ISimpleNode_v1" shape="rect" coords="349,112,572,136"/>
<area href="classAdobeXMPCore_1_1IArrayNode__v1.html" title="Version1 of the interface that represents an Array Node of XMP DOM." alt="AdobeXMPCore::IArrayNode_v1" shape="rect" coords="0,168,223,192"/>
<area href="classAdobeXMPCore_1_1IStructureNode__v1.html" title="Version1 of the interface that represents a structure Node of XMP DOM." alt="AdobeXMPCore::IStructureNode_v1" shape="rect" coords="233,168,456,192"/>
<area href="classAdobeXMPCore_1_1IMetadata__v1.html" title="Version1 of the interface that represents the whole xmp metadata for an asset." alt="AdobeXMPCore::IMetadata_v1" shape="rect" coords="233,224,456,248"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a46b01045c1addbc8f444bd21384b7913"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> { <br />
&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> = 0, 
<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> = 1, 
<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> = 1 &lt;&lt; 1, 
<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> = 1 &lt;&lt; 2, 
<br />
&#160;&#160;<a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> = kAllBits
<br />
 }</td></tr>
<tr class="memdesc:a46b01045c1addbc8f444bd21384b7913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates various types of node available in XMP Data Model like simple, array and structure.  <a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">More...</a><br /></td></tr>
<tr class="separator:a46b01045c1addbc8f444bd21384b7913"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a9883fe09ecbdfd7b47dd946ee71cc462"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9883fe09ecbdfd7b47dd946ee71cc462">GetNodeType</a> () const =0</td></tr>
<tr class="memdesc:a9883fe09ecbdfd7b47dd946ee71cc462"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node.  <a href="classAdobeXMPCore_1_1INode__v1.html#a9883fe09ecbdfd7b47dd946ee71cc462">More...</a><br /></td></tr>
<tr class="separator:a9883fe09ecbdfd7b47dd946ee71cc462"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4b32471a18409430274af75d7086b3f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ac4b32471a18409430274af75d7086b3f">GetParentNodeType</a> () const =0</td></tr>
<tr class="memdesc:ac4b32471a18409430274af75d7086b3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the node type of the node's parent.  <a href="classAdobeXMPCore_1_1INode__v1.html#ac4b32471a18409430274af75d7086b3f">More...</a><br /></td></tr>
<tr class="separator:ac4b32471a18409430274af75d7086b3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa087d2f94e42fdd5ece1bd22dfea66d5"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">SetName</a> (const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
<tr class="memdesc:aa087d2f94e42fdd5ece1bd22dfea66d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the local name of the node.  <a href="classAdobeXMPCore_1_1INode__v1.html#aa087d2f94e42fdd5ece1bd22dfea66d5">More...</a><br /></td></tr>
<tr class="separator:aa087d2f94e42fdd5ece1bd22dfea66d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40baa2818edf55f685d01100464c9256"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a40baa2818edf55f685d01100464c9256">GetName</a> () const =0</td></tr>
<tr class="memdesc:a40baa2818edf55f685d01100464c9256"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the local name of the node.  <a href="classAdobeXMPCore_1_1INode__v1.html#a40baa2818edf55f685d01100464c9256">More...</a><br /></td></tr>
<tr class="separator:a40baa2818edf55f685d01100464c9256"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55c6097b36412f9facc8a4cf7e898186"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">SetNameSpace</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength)=0</td></tr>
<tr class="memdesc:a55c6097b36412f9facc8a4cf7e898186"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the name space of the node.  <a href="classAdobeXMPCore_1_1INode__v1.html#a55c6097b36412f9facc8a4cf7e898186">More...</a><br /></td></tr>
<tr class="separator:a55c6097b36412f9facc8a4cf7e898186"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bc4e6cf5b261e61d039c1bdc746b751"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7bc4e6cf5b261e61d039c1bdc746b751">GetNameSpace</a> () const =0</td></tr>
<tr class="memdesc:a7bc4e6cf5b261e61d039c1bdc746b751"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the name space of the node.  <a href="classAdobeXMPCore_1_1INode__v1.html#a7bc4e6cf5b261e61d039c1bdc746b751">More...</a><br /></td></tr>
<tr class="separator:a7bc4e6cf5b261e61d039c1bdc746b751"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fbcb5a2b6f2842a5fa71fdf3b6a9b5b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a3fbcb5a2b6f2842a5fa71fdf3b6a9b5b">GetPath</a> () const =0</td></tr>
<tr class="memdesc:a3fbcb5a2b6f2842a5fa71fdf3b6a9b5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the path of the node from the root of the metadata.  <a href="classAdobeXMPCore_1_1INode__v1.html#a3fbcb5a2b6f2842a5fa71fdf3b6a9b5b">More...</a><br /></td></tr>
<tr class="separator:a3fbcb5a2b6f2842a5fa71fdf3b6a9b5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af898813d17af58fb1a828d92a74d7dd3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">QualifiersCount</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="memdesc:af898813d17af58fb1a828d92a74d7dd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the count of the qualifiers attached with the node.  <a href="classAdobeXMPCore_1_1INode__v1.html#af898813d17af58fb1a828d92a74d7dd3">More...</a><br /></td></tr>
<tr class="separator:af898813d17af58fb1a828d92a74d7dd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b0ad7bf2da0a7c83591c621e9f0d3da"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0b0ad7bf2da0a7c83591c621e9f0d3da">GetQualifierNodeType</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const =0</td></tr>
<tr class="memdesc:a0b0ad7bf2da0a7c83591c621e9f0d3da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of the node's qualifier having specified namespace and name.  <a href="classAdobeXMPCore_1_1INode__v1.html#a0b0ad7bf2da0a7c83591c621e9f0d3da">More...</a><br /></td></tr>
<tr class="separator:a0b0ad7bf2da0a7c83591c621e9f0d3da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a5e6dd9a58a288f20fd0a667a30a2ae"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">InsertQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
<tr class="memdesc:a5a5e6dd9a58a288f20fd0a667a30a2ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a given qualifier node.  <a href="classAdobeXMPCore_1_1INode__v1.html#a5a5e6dd9a58a288f20fd0a667a30a2ae">More...</a><br /></td></tr>
<tr class="separator:a5a5e6dd9a58a288f20fd0a667a30a2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a2692b8281984d9fe6de6c169332f2c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">ReplaceQualifier</a> (const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;node)=0</td></tr>
<tr class="memdesc:a5a2692b8281984d9fe6de6c169332f2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces a given qualifier node.  <a href="classAdobeXMPCore_1_1INode__v1.html#a5a2692b8281984d9fe6de6c169332f2c">More...</a><br /></td></tr>
<tr class="separator:a5a2692b8281984d9fe6de6c169332f2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87f03e9924418ae5f7b6fa63def6eee8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">RemoveQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
<tr class="memdesc:a87f03e9924418ae5f7b6fa63def6eee8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the qualifier node with the specified nameSpace and name.  <a href="classAdobeXMPCore_1_1INode__v1.html#a87f03e9924418ae5f7b6fa63def6eee8">More...</a><br /></td></tr>
<tr class="separator:a87f03e9924418ae5f7b6fa63def6eee8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8cc00de4b34e13fbae3ed91a5a2fcfe"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa8cc00de4b34e13fbae3ed91a5a2fcfe">IsArrayItem</a> () const =0</td></tr>
<tr class="memdesc:aa8cc00de4b34e13fbae3ed91a5a2fcfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a direct child of an array node.  <a href="classAdobeXMPCore_1_1INode__v1.html#aa8cc00de4b34e13fbae3ed91a5a2fcfe">More...</a><br /></td></tr>
<tr class="separator:aa8cc00de4b34e13fbae3ed91a5a2fcfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4839aa90a2f0f80513bf3bdf0fb16e52"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4839aa90a2f0f80513bf3bdf0fb16e52">IsQualifierNode</a> () const =0</td></tr>
<tr class="memdesc:a4839aa90a2f0f80513bf3bdf0fb16e52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node is a qualifier node.  <a href="classAdobeXMPCore_1_1INode__v1.html#a4839aa90a2f0f80513bf3bdf0fb16e52">More...</a><br /></td></tr>
<tr class="separator:a4839aa90a2f0f80513bf3bdf0fb16e52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ac1c4c3305ba83912d4e1ccf8398e1c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a9ac1c4c3305ba83912d4e1ccf8398e1c">GetIndex</a> () const =0</td></tr>
<tr class="memdesc:a9ac1c4c3305ba83912d4e1ccf8398e1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the node in case it is an array item.  <a href="classAdobeXMPCore_1_1INode__v1.html#a9ac1c4c3305ba83912d4e1ccf8398e1c">More...</a><br /></td></tr>
<tr class="separator:a9ac1c4c3305ba83912d4e1ccf8398e1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a404c043838e898b7a4b25da3acd0aee6"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a404c043838e898b7a4b25da3acd0aee6">HasQualifiers</a> () const =0</td></tr>
<tr class="memdesc:a404c043838e898b7a4b25da3acd0aee6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the node has any qualifiers associated with it.  <a href="classAdobeXMPCore_1_1INode__v1.html#a404c043838e898b7a4b25da3acd0aee6">More...</a><br /></td></tr>
<tr class="separator:a404c043838e898b7a4b25da3acd0aee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b924ef4640528bff4470995b6ccaa6e"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7b924ef4640528bff4470995b6ccaa6e">HasContent</a> () const =0</td></tr>
<tr class="memdesc:a7b924ef4640528bff4470995b6ccaa6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node has any content or not. return A bool value indicating the presence of contents in the node apart from qualifiers.  <a href="classAdobeXMPCore_1_1INode__v1.html#a7b924ef4640528bff4470995b6ccaa6e">More...</a><br /></td></tr>
<tr class="separator:a7b924ef4640528bff4470995b6ccaa6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35329cb38c6f1513d17ee688bb82a22d"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a35329cb38c6f1513d17ee688bb82a22d">IsEmpty</a> () const =0</td></tr>
<tr class="memdesc:a35329cb38c6f1513d17ee688bb82a22d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the node is empty. return A bool value indicating whether the contents and qualifiers of a node are empty.  <a href="classAdobeXMPCore_1_1INode__v1.html#a35329cb38c6f1513d17ee688bb82a22d">More...</a><br /></td></tr>
<tr class="separator:a35329cb38c6f1513d17ee688bb82a22d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeefe5925ec13fdbc4525f12d5251bd09"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aeefe5925ec13fdbc4525f12d5251bd09">HasChanged</a> () const =0</td></tr>
<tr class="memdesc:aeefe5925ec13fdbc4525f12d5251bd09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status about any change done to the node or its children or qualifiers. returns a bool value indicating whether some changes have been performed on the node or its children or qualifiers. for a simple node, true will be returned in scenarios like when the node's value or qualifiers are modified. for an array node or a structure node, true will be returned in scenarios like when the node's children or the node's qualifiers are modified.  <a href="classAdobeXMPCore_1_1INode__v1.html#aeefe5925ec13fdbc4525f12d5251bd09">More...</a><br /></td></tr>
<tr class="separator:aeefe5925ec13fdbc4525f12d5251bd09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a673b6b4d69b2c9d85f2fa440d413ace3"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">AcknowledgeChanges</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="memdesc:a673b6b4d69b2c9d85f2fa440d413ace3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acknowledges that changes for the node and its children and qualifiers have been taken care of. for a simple node, changes that will be acknowledged in scenarios like when the node's value or node's qualifiers were modified. for an array node or a structure node, changes will be acknowledged in scenarios like when the node's children were or the node's qualifiers were modified.  <a href="classAdobeXMPCore_1_1INode__v1.html#a673b6b4d69b2c9d85f2fa440d413ace3">More...</a><br /></td></tr>
<tr class="separator:a673b6b4d69b2c9d85f2fa440d413ace3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b615b0eef081f3c23385f28728aa462"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">Clear</a> (bool contents=true, bool qualifiers=true)=0</td></tr>
<tr class="memdesc:a4b615b0eef081f3c23385f28728aa462"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the contents of the node.  <a href="classAdobeXMPCore_1_1INode__v1.html#a4b615b0eef081f3c23385f28728aa462">More...</a><br /></td></tr>
<tr class="separator:a4b615b0eef081f3c23385f28728aa462"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8c37e29bd4f5756f43d2e74fd7f1f78"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ac8c37e29bd4f5756f43d2e74fd7f1f78">Clone</a> (bool ignoreEmptyNodes=false, bool ignoreNodesWithOnlyQualifiers=false) const =0</td></tr>
<tr class="memdesc:ac8c37e29bd4f5756f43d2e74fd7f1f78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual copy constructor.  <a href="classAdobeXMPCore_1_1INode__v1.html#ac8c37e29bd4f5756f43d2e74fd7f1f78">More...</a><br /></td></tr>
<tr class="separator:ac8c37e29bd4f5756f43d2e74fd7f1f78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:af85effa94b6697f30fb24ffe5251058d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#af85effa94b6697f30fb24ffe5251058d">GetParent</a> () const</td></tr>
<tr class="memdesc:af85effa94b6697f30fb24ffe5251058d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the parent node of the node.  <a href="classAdobeXMPCore_1_1INode__v1.html#af85effa94b6697f30fb24ffe5251058d">More...</a><br /></td></tr>
<tr class="separator:af85effa94b6697f30fb24ffe5251058d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4533c1d11fc2d32c166c9ce05fe01b3c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4533c1d11fc2d32c166c9ce05fe01b3c">GetParent</a> ()=0</td></tr>
<tr class="separator:a4533c1d11fc2d32c166c9ce05fe01b3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a8d420e938ffbe8ac1ad8333b75b4e909"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a8d420e938ffbe8ac1ad8333b75b4e909">QualifiersIterator</a> () const</td></tr>
<tr class="separator:a8d420e938ffbe8ac1ad8333b75b4e909"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa168f37bc38763df55fb1022d55886bd"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aa168f37bc38763df55fb1022d55886bd">QualifiersIterator</a> ()=0</td></tr>
<tr class="separator:aa168f37bc38763df55fb1022d55886bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a027121cc4fe09198b30ac8aa5b0c42ce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a027121cc4fe09198b30ac8aa5b0c42ce">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const</td></tr>
<tr class="memdesc:a027121cc4fe09198b30ac8aa5b0c42ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the qualifier of the node having specified namespace and name.  <a href="classAdobeXMPCore_1_1INode__v1.html#a027121cc4fe09198b30ac8aa5b0c42ce">More...</a><br /></td></tr>
<tr class="separator:a027121cc4fe09198b30ac8aa5b0c42ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7701069162b4f677026624a5f2b3f788"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a7701069162b4f677026624a5f2b3f788">GetQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)=0</td></tr>
<tr class="separator:a7701069162b4f677026624a5f2b3f788"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a2271c7caa128bef549a9c6f14e84ce01"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2271c7caa128bef549a9c6f14e84ce01">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const</td></tr>
<tr class="memdesc:a2271c7caa128bef549a9c6f14e84ce01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as simple node.  <a href="classAdobeXMPCore_1_1INode__v1.html#a2271c7caa128bef549a9c6f14e84ce01">More...</a><br /></td></tr>
<tr class="separator:a2271c7caa128bef549a9c6f14e84ce01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2831fe03981afd9af12e775bda89361e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a2831fe03981afd9af12e775bda89361e">GetSimpleQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
<tr class="separator:a2831fe03981afd9af12e775bda89361e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:aff5a6f0ca72bbb3e061b869517731e1c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#aff5a6f0ca72bbb3e061b869517731e1c">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const</td></tr>
<tr class="memdesc:aff5a6f0ca72bbb3e061b869517731e1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as structure node.  <a href="classAdobeXMPCore_1_1INode__v1.html#aff5a6f0ca72bbb3e061b869517731e1c">More...</a><br /></td></tr>
<tr class="separator:aff5a6f0ca72bbb3e061b869517731e1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fb3c837b8c28501b2e7a3376a2cf382"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a4fb3c837b8c28501b2e7a3376a2cf382">GetStructureQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
<tr class="separator:a4fb3c837b8c28501b2e7a3376a2cf382"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:ac37c63b6272a5622811fdbf3b64892a2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ac37c63b6272a5622811fdbf3b64892a2">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength) const</td></tr>
<tr class="memdesc:ac37c63b6272a5622811fdbf3b64892a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node's qualifier having specified name space and name as an array node.  <a href="classAdobeXMPCore_1_1INode__v1.html#ac37c63b6272a5622811fdbf3b64892a2">More...</a><br /></td></tr>
<tr class="separator:ac37c63b6272a5622811fdbf3b64892a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a2e68d1345ed6ca2e5d1bfada42b13f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a5a2e68d1345ed6ca2e5d1bfada42b13f">GetArrayQualifier</a> (const char *nameSpace, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameSpaceLength, const char *name, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> nameLength)</td></tr>
<tr class="separator:a5a2e68d1345ed6ca2e5d1bfada42b13f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a01e6678e13e955d7e679d50140d3adf2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a01e6678e13e955d7e679d50140d3adf2">ConvertToSimpleNode</a> () const</td></tr>
<tr class="memdesc:a01e6678e13e955d7e679d50140d3adf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a simple node, if possible.  <a href="classAdobeXMPCore_1_1INode__v1.html#a01e6678e13e955d7e679d50140d3adf2">More...</a><br /></td></tr>
<tr class="separator:a01e6678e13e955d7e679d50140d3adf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8e7ef140cb5ff094789abfcc879c94b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad8e7ef140cb5ff094789abfcc879c94b">ConvertToSimpleNode</a> ()=0</td></tr>
<tr class="separator:ad8e7ef140cb5ff094789abfcc879c94b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:abb268844559ffbc26aeb2d5cb7377817"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#abb268844559ffbc26aeb2d5cb7377817">ConvertToStructureNode</a> () const</td></tr>
<tr class="memdesc:abb268844559ffbc26aeb2d5cb7377817"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a structure node type, if possible.  <a href="classAdobeXMPCore_1_1INode__v1.html#abb268844559ffbc26aeb2d5cb7377817">More...</a><br /></td></tr>
<tr class="separator:abb268844559ffbc26aeb2d5cb7377817"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5f62a4ae9a9630c8106a04bd0c2a0a3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#ad5f62a4ae9a9630c8106a04bd0c2a0a3">ConvertToStructureNode</a> ()=0</td></tr>
<tr class="separator:ad5f62a4ae9a9630c8106a04bd0c2a0a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a38b179d5f706cd23ab695e15152a4203"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a38b179d5f706cd23ab695e15152a4203">ConvertToArrayNode</a> () const</td></tr>
<tr class="memdesc:a38b179d5f706cd23ab695e15152a4203"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to an array node type, if possible.  <a href="classAdobeXMPCore_1_1INode__v1.html#a38b179d5f706cd23ab695e15152a4203">More...</a><br /></td></tr>
<tr class="separator:a38b179d5f706cd23ab695e15152a4203"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d67ad7708fb6f007ea1152b79e65f49"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a0d67ad7708fb6f007ea1152b79e65f49">ConvertToArrayNode</a> ()=0</td></tr>
<tr class="separator:a0d67ad7708fb6f007ea1152b79e65f49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a94b51acfab307b20d62f2bd183aa2948"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">spcIMetadata</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a94b51acfab307b20d62f2bd183aa2948">ConvertToMetadata</a> () const</td></tr>
<tr class="memdesc:a94b51acfab307b20d62f2bd183aa2948"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts Node to a metadata node type, if possible.  <a href="classAdobeXMPCore_1_1INode__v1.html#a94b51acfab307b20d62f2bd183aa2948">More...</a><br /></td></tr>
<tr class="separator:a94b51acfab307b20d62f2bd183aa2948"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72dc534e1af718599ac185563a02612a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a72dc534e1af718599ac185563a02612a">ConvertToMetadata</a> ()=0</td></tr>
<tr class="separator:a72dc534e1af718599ac185563a02612a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
<tr class="memitem:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">Acquire</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="memdesc:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate that he has acquired the shared ownership of the object.  <a href="classAdobeXMPCommon_1_1ISharedObject.html#ab90d4ec1fcd975a7ac62dcb866335cdc">More...</a><br /></td></tr>
<tr class="separator:ab90d4ec1fcd975a7ac62dcb866335cdc inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">Release</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="memdesc:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by the clients of the object to indicate he has released his shared ownership of the object. If this being the last client than this function should call Destroy to delete and release the memory.  <a href="classAdobeXMPCommon_1_1ISharedObject.html#abf5a54e09f87366170ea19c618f68bc3">More...</a><br /></td></tr>
<tr class="separator:abf5a54e09f87366170ea19c618f68bc3 inherit pub_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version.  <a href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1827fc276dd3beb0df9aaab4ad1626d0 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
<tr class="memitem:a1827fc276dd3beb0df9aaab4ad1626d0 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top">const <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a1827fc276dd3beb0df9aaab4ad1626d0">GetInterfacePointer</a> () const</td></tr>
<tr class="memdesc:a1827fc276dd3beb0df9aaab4ad1626d0 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version.  <a href="classAdobeXMPCommon_1_1IVersionable.html#a1827fc276dd3beb0df9aaab4ad1626d0">More...</a><br /></td></tr>
<tr class="separator:a1827fc276dd3beb0df9aaab4ad1626d0 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
<tr class="memitem:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">EnableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="memdesc:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the thread safety on an object.  <a href="classAdobeXMPCommon_1_1IThreadSafe.html#afe35614cb88e2bdb32996cf4ac15b211">More...</a><br /></td></tr>
<tr class="separator:afe35614cb88e2bdb32996cf4ac15b211 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual void APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">DisableThreadSafety</a> () const <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="memdesc:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the thread safety on an object.  <a href="classAdobeXMPCommon_1_1IThreadSafe.html#a214bb1b5840dbd5576e764dd2220b261">More...</a><br /></td></tr>
<tr class="separator:a214bb1b5840dbd5576e764dd2220b261 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30d666826eba6dfed60c0760e145bee3 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">virtual bool APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a30d666826eba6dfed60c0760e145bee3">IsThreadSafe</a> () const =0</td></tr>
<tr class="memdesc:a30d666826eba6dfed60c0760e145bee3 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informs whether object can be used across multiple threads or not.  <a href="classAdobeXMPCommon_1_1IThreadSafe.html#a30d666826eba6dfed60c0760e145bee3">More...</a><br /></td></tr>
<tr class="separator:a30d666826eba6dfed60c0760e145bee3 inherit pub_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:affdbed044179bbde65ffc28b20e28ecb"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html#affdbed044179bbde65ffc28b20e28ecb">~INode_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
<tr class="separator:affdbed044179bbde65ffc28b20e28ecb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1ISharedObject')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html">AdobeXMPCommon::ISharedObject</a></td></tr>
<tr class="memitem:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#a5869ff89d0b7dd0a7b525401a1d57b31">~ISharedObject</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="separator:a5869ff89d0b7dd0a7b525401a1d57b31 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1ISharedObject.html#afcb42109aed83c3b0c133bc413388037">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
<tr class="separator:afcb42109aed83c3b0c133bc413388037 inherit pro_methods_classAdobeXMPCommon_1_1ISharedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IThreadSafe')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html">AdobeXMPCommon::IThreadSafe</a></td></tr>
<tr class="memitem:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IThreadSafe.html#a0f31eb9677c4af06288319e363c21ebc">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
<tr class="separator:a0f31eb9677c4af06288319e363c21ebc inherit pro_methods_classAdobeXMPCommon_1_1IThreadSafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM. </p>
<p>Provides all the functions to get various properties of the node. </p><dl class="section attention"><dt>Attention</dt><dd>Support multi threading through locks but can be enabled/disabled by the client. By default every object created does not support multi-threading. </dd></dl>

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00028">28</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a46b01045c1addbc8f444bd21384b7913"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46b01045c1addbc8f444bd21384b7913">&#9670;&nbsp;</a></span>eNodeType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">AdobeXMPCore::INode_v1::eNodeType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates various types of node available in XMP Data Model like simple, array and structure. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb"></a>kNTNone&#160;</td><td class="fielddoc"><p>Indicates none, to be used as invalid type. </p>
</td></tr>
<tr><td class="fieldname"><a id="a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234"></a>kNTSimple&#160;</td><td class="fielddoc"><p>XMP Node is of Simple Node type (key value pair). </p>
</td></tr>
<tr><td class="fieldname"><a id="a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610"></a>kNTArray&#160;</td><td class="fielddoc"><p>XMP Node is of Array type. Indexing start from 1. </p>
</td></tr>
<tr><td class="fieldname"><a id="a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471"></a>kNTStructure&#160;</td><td class="fielddoc"><p>XMP Node is of structure type. </p>
</td></tr>
<tr><td class="fieldname"><a id="a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21"></a>kNTAll&#160;</td><td class="fielddoc"><p>XMP Node of any type. </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00038">38</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                             {</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                        <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">kNTNone</a> = 0,</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">kNTSimple</a> = 1,</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                        <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">kNTArray</a> = 1 &lt;&lt; 1,</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                        <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">kNTStructure</a> = 1 &lt;&lt; 2,</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">kNTAll</a> = <a class="code" href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">kAllBits</a></div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                } <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a>;</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="affdbed044179bbde65ffc28b20e28ecb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#affdbed044179bbde65ffc28b20e28ecb">&#9670;&nbsp;</a></span>~INode_v1()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual AdobeXMPCore::INode_v1::~INode_v1 </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Destructor </p>

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00449">449</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;{}</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a673b6b4d69b2c9d85f2fa440d413ace3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a673b6b4d69b2c9d85f2fa440d413ace3">&#9670;&nbsp;</a></span>AcknowledgeChanges()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void APICALL AdobeXMPCore::INode_v1::AcknowledgeChanges </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Acknowledges that changes for the node and its children and qualifiers have been taken care of. for a simple node, changes that will be acknowledged in scenarios like when the node's value or node's qualifiers were modified. for an array node or a structure node, changes will be acknowledged in scenarios like when the node's children were or the node's qualifiers were modified. </p>

</div>
</div>
<a id="a4b615b0eef081f3c23385f28728aa462"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b615b0eef081f3c23385f28728aa462">&#9670;&nbsp;</a></span>Clear()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void APICALL AdobeXMPCore::INode_v1::Clear </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>contents</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>qualifiers</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clear the contents of the node. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">contents</td><td>A bool value controlling whether contents of the node should be cleared or not. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">qualifiers</td><td>A bool value controlling whether qualifiers of the node should be cleared or not. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac8c37e29bd4f5756f43d2e74fd7f1f78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8c37e29bd4f5756f43d2e74fd7f1f78">&#9670;&nbsp;</a></span>Clone()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::INode_v1::Clone </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>ignoreEmptyNodes</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>ignoreNodesWithOnlyQualifiers</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Virtual copy constructor. </p>
<p>Clones the node creating an exact replica of the node which is not part of any metadata tree. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ignoreEmptyNodes</td><td>A bool value controlling whether to clone empty nodes or not. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ignoreNodesWithOnlyQualifiers</td><td>A bool value controlling whether presence of only qualifiers should mark node as non empty. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to newly created replica of the node. </dd></dl>

</div>
</div>
<a id="a38b179d5f706cd23ab695e15152a4203"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38b179d5f706cd23ab695e15152a4203">&#9670;&nbsp;</a></span>ConvertToArrayNode() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> AdobeXMPCore::INode_v1::ConvertToArrayNode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Converts Node to an array node type, if possible. </p>
<dl class="section return"><dt>Returns</dt><dd>Shared pointer to const or non const IArrayNode object. An empty array node is thrown in case actual node is not an array node. </dd></dl>

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00363">363</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;                                                                     {</div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;                        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a38b179d5f706cd23ab695e15152a4203">ConvertToArrayNode</a>();</div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0d67ad7708fb6f007ea1152b79e65f49"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d67ad7708fb6f007ea1152b79e65f49">&#9670;&nbsp;</a></span>ConvertToArrayNode() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> APICALL AdobeXMPCore::INode_v1::ConvertToArrayNode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a94b51acfab307b20d62f2bd183aa2948"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94b51acfab307b20d62f2bd183aa2948">&#9670;&nbsp;</a></span>ConvertToMetadata() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a1e81ce748e90e850d0a48b0b5943fce2">spcIMetadata</a> AdobeXMPCore::INode_v1::ConvertToMetadata </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Converts Node to a metadata node type, if possible. </p>
<dl class="section return"><dt>Returns</dt><dd>Shared pointer to const or non const IMetadata object. An empty metadata node is thrown in case actual node is not a metadata node. </dd></dl>

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00374">374</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;                                                                   {</div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;                        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a94b51acfab307b20d62f2bd183aa2948">ConvertToMetadata</a>();</div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a72dc534e1af718599ac185563a02612a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72dc534e1af718599ac185563a02612a">&#9670;&nbsp;</a></span>ConvertToMetadata() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a7f1de39fd79aeac4402eba73cb1ffe82">spIMetadata</a> APICALL AdobeXMPCore::INode_v1::ConvertToMetadata </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a01e6678e13e955d7e679d50140d3adf2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a01e6678e13e955d7e679d50140d3adf2">&#9670;&nbsp;</a></span>ConvertToSimpleNode() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> AdobeXMPCore::INode_v1::ConvertToSimpleNode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Converts Node to a simple node, if possible. </p>
<dl class="section return"><dt>Returns</dt><dd>Shared pointer to const or non const ISimpleNode object. An empty simple node is thrown in case actual node is not a simple node. </dd></dl>

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00341">341</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;                                                                       {</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;                        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a01e6678e13e955d7e679d50140d3adf2">ConvertToSimpleNode</a>();</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad8e7ef140cb5ff094789abfcc879c94b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8e7ef140cb5ff094789abfcc879c94b">&#9670;&nbsp;</a></span>ConvertToSimpleNode() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> APICALL AdobeXMPCore::INode_v1::ConvertToSimpleNode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="abb268844559ffbc26aeb2d5cb7377817"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb268844559ffbc26aeb2d5cb7377817">&#9670;&nbsp;</a></span>ConvertToStructureNode() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> AdobeXMPCore::INode_v1::ConvertToStructureNode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Converts Node to a structure node type, if possible. </p>
<dl class="section return"><dt>Returns</dt><dd>Shared pointer to const or non const IStructureNode object. An empty structure node is thrown in case actual node is not a structure node. </dd></dl>

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00352">352</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;                                                                             {</div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;                        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#abb268844559ffbc26aeb2d5cb7377817">ConvertToStructureNode</a>();</div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad5f62a4ae9a9630c8106a04bd0c2a0a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad5f62a4ae9a9630c8106a04bd0c2a0a3">&#9670;&nbsp;</a></span>ConvertToStructureNode() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> APICALL AdobeXMPCore::INode_v1::ConvertToStructureNode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a5a2e68d1345ed6ca2e5d1bfada42b13f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a2e68d1345ed6ca2e5d1bfada42b13f">&#9670;&nbsp;</a></span>GetArrayQualifier() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a> AdobeXMPCore::INode_v1::GetArrayQualifier </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nameSpace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameSpaceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00237">237</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;                                                                                                                                                 {</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;                        <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a027121cc4fe09198b30ac8aa5b0c42ce">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;                        <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;                        <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">spIArrayNode</a>();</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ac37c63b6272a5622811fdbf3b64892a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac37c63b6272a5622811fdbf3b64892a2">&#9670;&nbsp;</a></span>GetArrayQualifier() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a> AdobeXMPCore::INode_v1::GetArrayQualifier </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nameSpace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameSpaceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the node's qualifier having specified name space and name as an array node. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the qualifier node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the qualifier node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const #ISimpleNode object containing qualifier. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer is returned. </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>a qualifier exists with the specified nameSpace and name combination but is not an array node. </li>
</ul>
</dd></dl>

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00231">231</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;                                                                                                                                                        {</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;                        <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a027121cc4fe09198b30ac8aa5b0c42ce">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;                        <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToArrayNode();</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;                        <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">spcIArrayNode</a>();</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a9ac1c4c3305ba83912d4e1ccf8398e1c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ac1c4c3305ba83912d4e1ccf8398e1c">&#9670;&nbsp;</a></span>GetIndex()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCore::INode_v1::GetIndex </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the index of the node in case it is an array item. </p>
<dl class="section return"><dt>Returns</dt><dd>The index of the node, in case it is an array item, otherwise returns 0. </dd></dl>

</div>
</div>
<a id="a40baa2818edf55f685d01100464c9256"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40baa2818edf55f685d01100464c9256">&#9670;&nbsp;</a></span>GetName()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCore::INode_v1::GetName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the local name of the node. </p>
<dl class="section return"><dt>Returns</dt><dd>a shared pointer to const #AdobeXMPCommon::IUTF8String representing the name of the node. </dd></dl>

</div>
</div>
<a id="a7bc4e6cf5b261e61d039c1bdc746b751"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7bc4e6cf5b261e61d039c1bdc746b751">&#9670;&nbsp;</a></span>GetNameSpace()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a91aaab1f1d7030b26df65258bd131a63">spcIUTF8String</a> APICALL AdobeXMPCore::INode_v1::GetNameSpace </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the name space of the node. </p>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const #AdobeXMPCommon::IUTF8String representing the name space of the node. </dd></dl>

</div>
</div>
<a id="a9883fe09ecbdfd7b47dd946ee71cc462"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9883fe09ecbdfd7b47dd946ee71cc462">&#9670;&nbsp;</a></span>GetNodeType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL AdobeXMPCore::INode_v1::GetNodeType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the node type of the node. </p>
<dl class="section return"><dt>Returns</dt><dd>An object of type #eNodeType indicating the type of the node. </dd></dl>

</div>
</div>
<a id="af85effa94b6697f30fb24ffe5251058d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af85effa94b6697f30fb24ffe5251058d">&#9670;&nbsp;</a></span>GetParent() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> AdobeXMPCore::INode_v1::GetParent </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the parent node of the node. </p>
<dl class="section return"><dt>Returns</dt><dd>Either a const or non const pointer to INode interface. </dd>
<dd>
A shared pointer to either a const or non const #AdobeXMPCore::INode representing the parent of the node. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Returns an invalid shared pointer in case the node is a root node or it is not part of tree. </dd></dl>

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00075">75</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                                                       {</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#af85effa94b6697f30fb24ffe5251058d">GetParent</a>();</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a4533c1d11fc2d32c166c9ce05fe01b3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4533c1d11fc2d32c166c9ce05fe01b3c">&#9670;&nbsp;</a></span>GetParent() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::INode_v1::GetParent </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ac4b32471a18409430274af75d7086b3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4b32471a18409430274af75d7086b3f">&#9670;&nbsp;</a></span>GetParentNodeType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL AdobeXMPCore::INode_v1::GetParentNodeType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the node type of the node's parent. </p>
<dl class="section return"><dt>Returns</dt><dd>An object of type #eNodeType indicating the type of the node. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>#eNodeType::kNTNone is returned in case node has no parent. </dd></dl>

</div>
</div>
<a id="a3fbcb5a2b6f2842a5fa71fdf3b6a9b5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3fbcb5a2b6f2842a5fa71fdf3b6a9b5b">&#9670;&nbsp;</a></span>GetPath()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aa54f5ed241da9437ad01c1047a199f56">spIPath</a> APICALL AdobeXMPCore::INode_v1::GetPath </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the path of the node from the root of the metadata. </p>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to #AdobeXMPCore::IPath representing the path of the node. </dd></dl>

</div>
</div>
<a id="a027121cc4fe09198b30ac8aa5b0c42ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a027121cc4fe09198b30ac8aa5b0c42ce">&#9670;&nbsp;</a></span>GetQualifier() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a597eaeb0ed86794ea01f74a5be0f88ed">spcINode</a> AdobeXMPCore::INode_v1::GetQualifier </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nameSpace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameSpaceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the qualifier of the node having specified namespace and name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the qualifier node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the qualifier node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to either a const or const qualifier node. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer is returned. </dd></dl>

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00160">160</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                                                                                                                                              {</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a027121cc4fe09198b30ac8aa5b0c42ce">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a7701069162b4f677026624a5f2b3f788"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7701069162b4f677026624a5f2b3f788">&#9670;&nbsp;</a></span>GetQualifier() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::INode_v1::GetQualifier </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nameSpace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameSpaceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a0b0ad7bf2da0a7c83591c621e9f0d3da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b0ad7bf2da0a7c83591c621e9f0d3da">&#9670;&nbsp;</a></span>GetQualifierNodeType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">eNodeType</a> APICALL AdobeXMPCore::INode_v1::GetQualifierNodeType </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nameSpace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameSpaceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the type of the node's qualifier having specified namespace and name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the qualifier node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the qualifier node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An object of type #eNodeType indicating the type of the node's qualifier. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>In case no qualifier exists with the specified nameSpace and name combination then an #eNodeType::kNTNode is returned. </dd></dl>

</div>
</div>
<a id="a2831fe03981afd9af12e775bda89361e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2831fe03981afd9af12e775bda89361e">&#9670;&nbsp;</a></span>GetSimpleQualifier() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a> AdobeXMPCore::INode_v1::GetSimpleQualifier </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nameSpace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameSpaceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00185">185</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                                                                                                                                                   {</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                        <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a027121cc4fe09198b30ac8aa5b0c42ce">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                        <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                        <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">spISimpleNode</a>();</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a2271c7caa128bef549a9c6f14e84ce01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2271c7caa128bef549a9c6f14e84ce01">&#9670;&nbsp;</a></span>GetSimpleQualifier() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a> AdobeXMPCore::INode_v1::GetSimpleQualifier </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nameSpace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameSpaceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the node's qualifier having specified name space and name as simple node. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the qualifier node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the qualifier node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const #ISimpleNode object containing qualifier. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer is returned. </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>a qualifier exists with the specified nameSpace and name combination but is not a simple node. </li>
</ul>
</dd></dl>

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00179">179</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                                                                                                                                                          {</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                        <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a027121cc4fe09198b30ac8aa5b0c42ce">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                        <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToSimpleNode();</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                        <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">spcISimpleNode</a>();</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a4fb3c837b8c28501b2e7a3376a2cf382"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4fb3c837b8c28501b2e7a3376a2cf382">&#9670;&nbsp;</a></span>GetStructureQualifier() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a> AdobeXMPCore::INode_v1::GetStructureQualifier </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nameSpace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameSpaceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00211">211</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                                                                                                                                                         {</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                        <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a027121cc4fe09198b30ac8aa5b0c42ce">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;                        <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;                        <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">spIStructureNode</a>();</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aff5a6f0ca72bbb3e061b869517731e1c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aff5a6f0ca72bbb3e061b869517731e1c">&#9670;&nbsp;</a></span>GetStructureQualifier() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a> AdobeXMPCore::INode_v1::GetStructureQualifier </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nameSpace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameSpaceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the node's qualifier having specified name space and name as structure node. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the qualifier node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the qualifier node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to const or non const #IStructureNode object containing qualifier. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>In case no qualifier exists with the specified nameSpace and name combination then an invalid shared pointer is returned. </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in case<ul>
<li>a qualifier exists with the specified nameSpace and name combination but is not a structure node. </li>
</ul>
</dd></dl>

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00205">205</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;                                                                                                                                                                {</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;                        <span class="keyword">auto</span> node = <a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a027121cc4fe09198b30ac8aa5b0c42ce">GetQualifier</a>( nameSpace, nameSpaceLength, name, nameLength );</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                        <span class="keywordflow">if</span> ( node ) <span class="keywordflow">return</span> node-&gt;ConvertToStructureNode();</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                        <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">spcIStructureNode</a>();</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aeefe5925ec13fdbc4525f12d5251bd09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeefe5925ec13fdbc4525f12d5251bd09">&#9670;&nbsp;</a></span>HasChanged()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool APICALL AdobeXMPCore::INode_v1::HasChanged </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the status about any change done to the node or its children or qualifiers. returns a bool value indicating whether some changes have been performed on the node or its children or qualifiers. for a simple node, true will be returned in scenarios like when the node's value or qualifiers are modified. for an array node or a structure node, true will be returned in scenarios like when the node's children or the node's qualifiers are modified. </p>

</div>
</div>
<a id="a7b924ef4640528bff4470995b6ccaa6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b924ef4640528bff4470995b6ccaa6e">&#9670;&nbsp;</a></span>HasContent()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool APICALL AdobeXMPCore::INode_v1::HasContent </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns whether the node has any content or not. return A bool value indicating the presence of contents in the node apart from qualifiers. </p>

</div>
</div>
<a id="a404c043838e898b7a4b25da3acd0aee6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a404c043838e898b7a4b25da3acd0aee6">&#9670;&nbsp;</a></span>HasQualifiers()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool APICALL AdobeXMPCore::INode_v1::HasQualifiers </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Indicates whether the node has any qualifiers associated with it. </p>
<dl class="section return"><dt>Returns</dt><dd>A bool value; true in case the node has any qualifier associated with it, false otherwise. </dd></dl>

</div>
</div>
<a id="a5a5e6dd9a58a288f20fd0a667a30a2ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a5e6dd9a58a288f20fd0a667a30a2ae">&#9670;&nbsp;</a></span>InsertQualifier()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void APICALL AdobeXMPCore::INode_v1::InsertQualifier </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
          <td class="paramname"><em>node</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Inserts a given qualifier node. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>Shared pointer to an object of #AdobeXMPCore::INode representing the qualifier node to be inserted. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in following cases:<ul>
<li>given qualifier node is invalid.</li>
<li>given qualifier node is already a child of some other node.</li>
<li>there exists a qualifier node with the same nameSpace and name combination.</li>
<li>parent or any ancestor node is a qualifier node. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="aa8cc00de4b34e13fbae3ed91a5a2fcfe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8cc00de4b34e13fbae3ed91a5a2fcfe">&#9670;&nbsp;</a></span>IsArrayItem()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool APICALL AdobeXMPCore::INode_v1::IsArrayItem </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Indicates whether the node is a direct child of an array node. </p>
<dl class="section return"><dt>Returns</dt><dd>A bool value; true in case the node is a direct child of an array node, false otherwise. </dd></dl>

</div>
</div>
<a id="a35329cb38c6f1513d17ee688bb82a22d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35329cb38c6f1513d17ee688bb82a22d">&#9670;&nbsp;</a></span>IsEmpty()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool APICALL AdobeXMPCore::INode_v1::IsEmpty </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns whether the node is empty. return A bool value indicating whether the contents and qualifiers of a node are empty. </p>

</div>
</div>
<a id="a4839aa90a2f0f80513bf3bdf0fb16e52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4839aa90a2f0f80513bf3bdf0fb16e52">&#9670;&nbsp;</a></span>IsQualifierNode()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool APICALL AdobeXMPCore::INode_v1::IsQualifierNode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Indicates whether the node is a qualifier node. </p>
<dl class="section return"><dt>Returns</dt><dd>A bool value; true in case the node is a qualifier node, false otherwise. </dd></dl>

</div>
</div>
<a id="af898813d17af58fb1a828d92a74d7dd3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af898813d17af58fb1a828d92a74d7dd3">&#9670;&nbsp;</a></span>QualifiersCount()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> APICALL AdobeXMPCore::INode_v1::QualifiersCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the count of the qualifiers attached with the node. </p>
<dl class="section return"><dt>Returns</dt><dd>An object of type #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> containing the count of qualifiers attached with the node. </dd></dl>

</div>
</div>
<a id="a8d420e938ffbe8ac1ad8333b75b4e909"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d420e938ffbe8ac1ad8333b75b4e909">&#9670;&nbsp;</a></span>QualifiersIterator() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCore.html#ab423c366f29043e79694f805bceddb56">spcINodeIterator</a> AdobeXMPCore::INode_v1::QualifiersIterator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get an iterator object to iterate over all the qualifier nodes attached to the composite node. </p><dl class="section return"><dt>Returns</dt><dd>A shared pointer to a const or non const #INodeIterator object. </dd></dl>

<p class="definition">Definition at line <a class="el" href="INode_8h_source.html#l00132">132</a> of file <a class="el" href="INode_8h_source.html">INode.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                                                                        {</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span> INode_v1 * <span class="keyword">&gt;</span>( this )-&gt;<a class="code" href="classAdobeXMPCore_1_1INode__v1.html#a8d420e938ffbe8ac1ad8333b75b4e909">QualifiersIterator</a>();</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa168f37bc38763df55fb1022d55886bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa168f37bc38763df55fb1022d55886bd">&#9670;&nbsp;</a></span>QualifiersIterator() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#a5386a735d9eb66d5859e4657dfeebb7c">spINodeIterator</a> APICALL AdobeXMPCore::INode_v1::QualifiersIterator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a87f03e9924418ae5f7b6fa63def6eee8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87f03e9924418ae5f7b6fa63def6eee8">&#9670;&nbsp;</a></span>RemoveQualifier()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::INode_v1::RemoveQualifier </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nameSpace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameSpaceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Removes the qualifier node with the specified nameSpace and name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the qualifier node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the qualifier node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to #AdobeXMPCore::INode object representing qualifier node which is removed from the node. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>In case no qualifier node exists at the given index an invalid shared pointer is returned. </dd></dl>

</div>
</div>
<a id="a5a2692b8281984d9fe6de6c169332f2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a2692b8281984d9fe6de6c169332f2c">&#9670;&nbsp;</a></span>ReplaceQualifier()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> APICALL AdobeXMPCore::INode_v1::ReplaceQualifier </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceAdobeXMPCore.html#aeec2c711a611cbc3c77ef1a0bb026e33">spINode</a> &amp;&#160;</td>
          <td class="paramname"><em>node</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Replaces a given qualifier node. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>Shared pointer to an object of #AdobeXMPCore::INode representing the qualifier node to be inserted. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to a qualifier node which is being replaced. </dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>Error is thrown in following cases:<ol type="1">
<li>given qualifier node is invalid.</li>
<li>given qualifier node is already a child of some other node.</li>
<li>there exists no qualifier node with the same nameSpace and name combination. </li>
</ol>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Warning is raised in case the type of the old existing node is not same as that of new node. </dd></dl>

</div>
</div>
<a id="aa087d2f94e42fdd5ece1bd22dfea66d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa087d2f94e42fdd5ece1bd22dfea66d5">&#9670;&nbsp;</a></span>SetName()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void APICALL AdobeXMPCore::INode_v1::SetName </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Changes the local name of the node. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Pointer to a constant char buffer containing local name of the node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameLength</td><td>Number of characters in name. In case name is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section attention"><dt>Attention</dt><dd>Error can be thrown in case<ul>
<li>name is NULL pointer or its contents are empty</li>
<li>name is not valid XML property name.</li>
<li>Sibling with the same combination of name and nameSpace is present. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a55c6097b36412f9facc8a4cf7e898186"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55c6097b36412f9facc8a4cf7e898186">&#9670;&nbsp;</a></span>SetNameSpace()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void APICALL AdobeXMPCore::INode_v1::SetNameSpace </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nameSpace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>nameSpaceLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Changes the name space of the node. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpace</td><td>Pointer to a constant char buffer containing name space URI of the node. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nameSpaceLength</td><td>Number of characters in nameSpace. In case nameSpace is null terminated set it to #<a class="el" href="namespaceAdobeXMPCommon.html#afc1bfa88991003b305ab5023b483d3f9">AdobeXMPCommon::npos</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section attention"><dt>Attention</dt><dd>Error can be thrown in case<ul>
<li>nameSpace is NULL pointer or its contents are empty</li>
<li>Sibling with the same combination of name and nameSpace is present. </li>
</ul>
</dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>public/include/XMPCore/Interfaces/<a class="el" href="INode_8h_source.html">INode.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclassAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913">AdobeXMPCore::INode_v1::eNodeType</a></div><div class="ttdeci">eNodeType</div><div class="ttdoc">Indicates various types of node available in XMP Data Model like simple, array and structure.</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00038">INode.h:38</a></div></div>
<div class="ttc" id="aclassAdobeXMPCore_1_1INode__v1_html_a027121cc4fe09198b30ac8aa5b0c42ce"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a027121cc4fe09198b30ac8aa5b0c42ce">AdobeXMPCore::INode_v1::GetQualifier</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetQualifier(const char *nameSpace, sizet nameSpaceLength, const char *name, sizet nameLength) const</div><div class="ttdoc">Gets the qualifier of the node having specified namespace and name.</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00160">INode.h:160</a></div></div>
<div class="ttc" id="anamespaceAdobeXMPCore_html_a957c57fcbb47c704fc5c31cf36dcbde7"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a957c57fcbb47c704fc5c31cf36dcbde7">AdobeXMPCore::spIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; IStructureNode &gt; spIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00103">XMPCoreFwdDeclarations.h:103</a></div></div>
<div class="ttc" id="aclassAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a7542b80b3b688cd3d210d62d12dbe471">AdobeXMPCore::INode_v1::kNTStructure</a></div><div class="ttdeci">@ kNTStructure</div><div class="ttdoc">XMP Node is of structure type.</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00049">INode.h:49</a></div></div>
<div class="ttc" id="anamespaceAdobeXMPCore_html_ab20ecb8d094c1dd81cb278370b746343"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab20ecb8d094c1dd81cb278370b746343">AdobeXMPCore::spISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; ISimpleNode &gt; spISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00079">XMPCoreFwdDeclarations.h:79</a></div></div>
<div class="ttc" id="aclassAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913aae32cc414cc7adaf3b2a1c375f2cb3bb">AdobeXMPCore::INode_v1::kNTNone</a></div><div class="ttdeci">@ kNTNone</div><div class="ttdoc">Indicates none, to be used as invalid type.</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00040">INode.h:40</a></div></div>
<div class="ttc" id="aclassAdobeXMPCore_1_1INode__v1_html_a94b51acfab307b20d62f2bd183aa2948"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a94b51acfab307b20d62f2bd183aa2948">AdobeXMPCore::INode_v1::ConvertToMetadata</a></div><div class="ttdeci">XMP_PRIVATE spcIMetadata ConvertToMetadata() const</div><div class="ttdoc">Converts Node to a metadata node type, if possible.</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00374">INode.h:374</a></div></div>
<div class="ttc" id="aclassAdobeXMPCore_1_1INode__v1_html_a8d420e938ffbe8ac1ad8333b75b4e909"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a8d420e938ffbe8ac1ad8333b75b4e909">AdobeXMPCore::INode_v1::QualifiersIterator</a></div><div class="ttdeci">XMP_PRIVATE spcINodeIterator QualifiersIterator() const</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00132">INode.h:132</a></div></div>
<div class="ttc" id="aclassAdobeXMPCore_1_1INode__v1_html_af85effa94b6697f30fb24ffe5251058d"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#af85effa94b6697f30fb24ffe5251058d">AdobeXMPCore::INode_v1::GetParent</a></div><div class="ttdeci">XMP_PRIVATE spcINode GetParent() const</div><div class="ttdoc">Gets the parent node of the node.</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00075">INode.h:75</a></div></div>
<div class="ttc" id="aclassAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a97e0c4fb69029d0d152c068c10736234">AdobeXMPCore::INode_v1::kNTSimple</a></div><div class="ttdeci">@ kNTSimple</div><div class="ttdoc">XMP Node is of Simple Node type (key value pair).</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00043">INode.h:43</a></div></div>
<div class="ttc" id="aclassAdobeXMPCore_1_1INode__v1_html_a01e6678e13e955d7e679d50140d3adf2"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a01e6678e13e955d7e679d50140d3adf2">AdobeXMPCore::INode_v1::ConvertToSimpleNode</a></div><div class="ttdeci">XMP_PRIVATE spcISimpleNode ConvertToSimpleNode() const</div><div class="ttdoc">Converts Node to a simple node, if possible.</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00341">INode.h:341</a></div></div>
<div class="ttc" id="anamespaceAdobeXMPCore_html_a24e8e82d63d879d77408ce5c7e30c609"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a24e8e82d63d879d77408ce5c7e30c609">AdobeXMPCore::spIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; IArrayNode &gt; spIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00115">XMPCoreFwdDeclarations.h:115</a></div></div>
<div class="ttc" id="anamespaceAdobeXMPCore_html_a4cb671d44948c7505c33431ec12f6c1f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4cb671d44948c7505c33431ec12f6c1f">AdobeXMPCore::spcISimpleNode</a></div><div class="ttdeci">shared_ptr&lt; const ISimpleNode &gt; spcISimpleNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00080">XMPCoreFwdDeclarations.h:80</a></div></div>
<div class="ttc" id="anamespaceAdobeXMPCore_html_a4ea338a9eed923abf6aba47a27926a0f"><div class="ttname"><a href="namespaceAdobeXMPCore.html#a4ea338a9eed923abf6aba47a27926a0f">AdobeXMPCore::spcIArrayNode</a></div><div class="ttdeci">shared_ptr&lt; const IArrayNode &gt; spcIArrayNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00116">XMPCoreFwdDeclarations.h:116</a></div></div>
<div class="ttc" id="aclassAdobeXMPCore_1_1INode__v1_html_a38b179d5f706cd23ab695e15152a4203"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a38b179d5f706cd23ab695e15152a4203">AdobeXMPCore::INode_v1::ConvertToArrayNode</a></div><div class="ttdeci">XMP_PRIVATE spcIArrayNode ConvertToArrayNode() const</div><div class="ttdoc">Converts Node to an array node type, if possible.</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00363">INode.h:363</a></div></div>
<div class="ttc" id="anamespaceAdobeXMPCore_html_ab5807ab783087243a3676a19ad6f9b90"><div class="ttname"><a href="namespaceAdobeXMPCore.html#ab5807ab783087243a3676a19ad6f9b90">AdobeXMPCore::spcIStructureNode</a></div><div class="ttdeci">shared_ptr&lt; const IStructureNode &gt; spcIStructureNode</div><div class="ttdef"><b>Definition:</b> <a href="XMPCoreFwdDeclarations_8h_source.html#l00104">XMPCoreFwdDeclarations.h:104</a></div></div>
<div class="ttc" id="aclassAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a68bac77fd8140a60490eb78f0b533e21">AdobeXMPCore::INode_v1::kNTAll</a></div><div class="ttdeci">@ kNTAll</div><div class="ttdoc">XMP Node of any type.</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00052">INode.h:52</a></div></div>
<div class="ttc" id="aclassAdobeXMPCore_1_1INode__v1_html_abb268844559ffbc26aeb2d5cb7377817"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#abb268844559ffbc26aeb2d5cb7377817">AdobeXMPCore::INode_v1::ConvertToStructureNode</a></div><div class="ttdeci">XMP_PRIVATE spcIStructureNode ConvertToStructureNode() const</div><div class="ttdoc">Converts Node to a structure node type, if possible.</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00352">INode.h:352</a></div></div>
<div class="ttc" id="anamespaceAdobeXMPCommon_html_a3e31c8b25cbf95c42b8e439071bdf865"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3e31c8b25cbf95c42b8e439071bdf865">AdobeXMPCommon::kAllBits</a></div><div class="ttdeci">static const uint32 kAllBits(0xFFFFFFFF)</div></div>
<div class="ttc" id="aclassAdobeXMPCore_1_1INode__v1_html_a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610"><div class="ttname"><a href="classAdobeXMPCore_1_1INode__v1.html#a46b01045c1addbc8f444bd21384b7913a60c6b4c3dfc99d8584866f5f18ff2610">AdobeXMPCore::INode_v1::kNTArray</a></div><div class="ttdeci">@ kNTArray</div><div class="ttdoc">XMP Node is of Array type. Indexing start from 1.</div><div class="ttdef"><b>Definition:</b> <a href="INode_8h_source.html#l00046">INode.h:46</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceAdobeXMPCore.html">AdobeXMPCore</a></li><li class="navelem"><a class="el" href="classAdobeXMPCore_1_1INode__v1.html">INode_v1</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
